package com.pig4cloud.pigx.contract.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.pig4cloud.pigx.common.customize.utils.serializer.BigDecimalToPlainStringSerializer;
import com.pig4cloud.pigx.contract.bo.ContractExistPositionInfoBO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * app端合约详情界面VO
 *
 * @date 2022/8/24 19:43
 */
@Data
@ApiModel(value = "app端合约详情界面VO")
public class AppContractSymbolDetailVO {

	/**
	 * 主币名称
	 */
	@ApiModelProperty(value = "主币名称")
	private String mainCurName;

	/**
	 * 主币精度
	 */
	@ApiModelProperty(value = "主币精度")
	@JsonSerialize(using = ToStringSerializer.class)
	private Integer mainCurAccuracy;

	/**
	 * 外币名称
	 */
	@ApiModelProperty(value = "外币名称")
	private String tokenCurName;

	/**
	 * 外币精度
	 */
	@ApiModelProperty(value = "外币精度")
	@JsonSerialize(using = ToStringSerializer.class)
	private Integer tokenCurAccuracy;

	/**
	 * 名称
	 */
	@ApiModelProperty(value = "名称")
	private String name;

	/**
	 * 最大杠杆倍数
	 */
	@ApiModelProperty(value = "最大杠杆倍数")
	private Integer multiple;

	/**
	 * 市价单手续费费率
	 */
	@ApiModelProperty(value = "市价单手续费费率")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal marketFeeRate;

	/**
	 * 限价单手续费费率
	 */
	@ApiModelProperty(value = "限价单手续费费率")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal limitFeeRate;

	/**
	 * 最小下单数量
	 */
	@ApiModelProperty(value = "最小下单数量")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal minOrderNum;

	/**
	 * 最小下单价格
	 */
	@ApiModelProperty(value = "最小下单价格")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal minOrderPrice;

	/**
	 * 市价单单笔最大数量
	 */
	@ApiModelProperty(value = "市价单单笔最大数量")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal maxMarketOrderNum;

	/**
	 * 限价单单笔最大数量
	 */
	@ApiModelProperty(value = "限价单单笔最大数量")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal maxLimitOrderNum;

	/**
	 * 最小价格波动单位
	 */
	@ApiModelProperty(value = "最小价格波动单位")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal minPriceFloatUnit;

	/**
	 * 限价单价格上限比率
	 */
	@ApiModelProperty(value = "限价单价格上限比率")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal limitOrderPriceCapRatio;

	/**
	 * 限价单价格下限比率
	 */
	@ApiModelProperty(value = "限价单价格下限比率")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal limitOrderPriceFloorRatio;

	/**
	 * 强平提前量
	 */
	@ApiModelProperty(value = "强平提前量")
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal liquidateAdvance;

	/**
	 * 已有仓位模式、杠杆倍数信息
	 */
	@ApiModelProperty("已有仓位模式、杠杆倍数信息")
	private ContractExistPositionInfoBO existPositionInfoBO;

	/**
	 * 深度图深度选项
	 */
	private List<String> Level;


	/**
	 * 张数
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal sheet;
}
